Racket (linguaggio di programmazione)

Racket
linguaggio di programmazione
AutorePLT Inc.
Data di origine1994
Ultima versione8.12 (8 febbraio 2024)
Utilizzo{{{utilizzo}}}
ParadigmiMulti-paradigma: funzionale, procedurale, modulare, orientata agli oggetti, logica, riflessiva, meta
Tipizzazionedinamica
Estensioni comuni.rkt, .rktl, .rktd, .scrbl, .plt, .ss, .scm
Influenzato daScheme, Eiffel[1]
Ha influenzatoScheme,[2] Rust,[3][4] Clojure[5]
Implementazione di riferimento
Sistema operativoCross-platform
LicenzaLGPL
Sito webracket-lang.org/

Racket (precedentemente noto come PLT Scheme) è un linguaggio di programmazione general purpose multi-paradigma della famiglia Lisp-Scheme. Uno degli obiettivi dietro alla sua progettazione è quello di servire come piattaforma per la progettazione, creazione e implementazione di nuovi linguaggi.[6][7] È usato in una varietà di contesti, come scripting, programmazione general purpose, didattica dell'informatica e ricerca.

La distribuzione fornisce un'implementazione del linguaggio (comprensiva di un sofisticato run-time system,[8] diverse librerie e compilatore JIT) insieme con un ambiente di sviluppo integrato chiamato DrRacket (precedentemente noto come DrScheme) scritto esso stesso in Racket.[9] Il linguaggio è noto per il suo versatile sistema di macro che consente di creare facilmente nuovi linguaggi e dialetti con diversi costrutti o una differente semantica.[10][11][12][13]

La distribuzione è open source, coperta da licenza GNU Lesser General Public License (LGPL),[14] ed estensioni e package realizzati dalla comunità sono disponibili attraverso un package manager centralizzato.

  1. ^ T.S. Strickland e Matthias Fellesisen, DLS 2010: Contracts for First-Class Classes (PDF), su ccs.neu.edu, 2010.
  2. ^ Michael Sperber, R. Kent Dybvig, Matthew Flatt e Anton Van Straaten, Revised6 Report on the Algorithmic Language Scheme (R6RS), su r6rs.org, Scheme Steering Committee, August 2007. URL consultato il 13 settembre 2011.
  3. ^ Planet2 questions, su mail.mozilla.org. URL consultato il 10 gennaio 2017 (archiviato dall'url originale il 25 giugno 2021).
  4. ^ Rust Bibliography, su github.com.
  5. ^ Ambrose Bonnaire-Sergeant, A Practical Optional Type System for Clojure, The University of Western Australia, 2012.
  6. ^ Welcome to Racket, su docs.racket-lang.org. URL consultato il 15 agosto 2011.
  7. ^ Dialects of Racket and Scheme, su docs.racket-lang.org. URL consultato il 15 agosto 2011.
  8. ^ Flatt, Findler, Krishnamurthi e Felleisen, Programming Languages as Operating Systems (or, Revenge of the Son of the Lisp Machine), International Conference on Functional Programming, 1999.
  9. ^ Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore drscheme
  10. ^ Macros Matter, su blog.racket-lang.org, 3 maggio 2007. URL consultato l'8 agosto 2011.
  11. ^ M. Flatt, R. B. Findler e M. Felleisen, Scheme with Classes, Mixins, and Traits (PDF), in Asian Symposium on Programming Languages and Systems, 2006.
  12. ^ M. Flatt e M. Felleisen, Units: Cool Modules for Hot Languages, in Programming Language Design and Implementation, 1998.
  13. ^ S. Tobin-Hochstadt, V. St-Amour, R. Culpepper, M. Flatt e M. Felleisen, Languages as Libraries (PDF), in Programming Language Design and Implementation, 2011.
  14. ^ Racket: Software License, su download.racket-lang.org. URL consultato il 20 ottobre 2015.

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search